package 剑指II;

/**
 * @description:
 * @author: 小白白
 * @create: 2021-12-13
 **/

public class Jz032有效的变位词 {

    /**
     * 给定两个字符串 s 和 t ，编写一个函数来判断它们是不是一组变位词（字母异位词）。
     * 注意：若 s 和 t 中每个字符出现的次数都相同且字符顺序不完全相同，则称 s 和 t 互为变位词（字母异位词）。
     * <p>
     * 示例 1:
     * 输入: s = "anagram", t = "nagaram"
     * 输出: true
     * 示例 2:
     * 输入: s = "rat", t = "car"
     * 输出: false
     * 示例 3:
     * 输入: s = "a", t = "a"
     * 输出: false
     *  
     * 提示:
     * 1 <= s.length, t.length <= 5 * 104
     * s and t 仅包含小写字母
     *  
     * 进阶: 如果输入字符串包含 unicode 字符怎么办？你能否调整你的解法来应对这种情况？
     */

    public boolean isAnagram(String s, String t) {

        if (s.equals(t)) {
            return false;
        }

        int[] arr = new int[26];

        char[] sArr = s.toCharArray();
        char[] tArr = t.toCharArray();

        for (char c : sArr) {
            arr[c - 'a']++;
        }

        for (char c : tArr) {
            arr[c - 'a']--;
        }

        for (int i : arr) {
            if (i != 0) {
                return false;
            }
        }


        return true;
    }

}
